package sg.edu.nus.iss.vmcs.service;

import sg.edu.nus.iss.vmcs.maintenance.CoinDisplay;
import sg.edu.nus.iss.vmcs.maintenance.DrinkDisplay;
import sg.edu.nus.iss.vmcs.maintenance.MaintenancePanel;
import sg.edu.nus.iss.vmcs.util.VMCSException;

public interface IMaintenanceDisplayService {
	/**
	 * Set the maintenance panel
	 * @param maintenancePanel
	 */
	public void setMaintenancePanel(MaintenancePanel maintenancePanel);
	/**
	 * Retrieve the maintenance panel
	 * @return
	 */
	public MaintenancePanel getMaintainancePanel();
	/**
	 * Check if the maintainance panel is terminated
	 * @return
	 */
	public boolean isMaintainancePanelTerminated();
	/**
	 * Display the maintainance panel
	 */
	public void displayMaintainancePanel();
	/**
	 * Set the button of the maintainance panel
	 * @param comp
	 * @param st
	 */
	public void setButtonActive(int comp, boolean st);
	/**
	 * Close down the maintainance panel
	 */
	public void closeDownMaintainancePanel();
	/**
	 * Display the password state
	 * @param state
	 */
	public void displayPasswordState(boolean state);
	/**
	 * Clear the password field
	 */
	public void clearPassword();
	/**
	 * Display the coin quantity
	 * @param idx
	 * @param qty
	 * @throws VMCSException
	 */
	public void displayCoinQty(int idx, int qty) throws VMCSException;
	/**
	 * Display the drink quantity
	 * @param idx
	 * @param qty
	 * @throws VMCSException
	 */
	public void displayDrinkQty(int idx, int qty) throws VMCSException;
	/**
	 * Retrieve the drink display
	 * @return
	 */
	public DrinkDisplay getDrinksDisplay();
	/**
	 * Retrieve the coin display
	 * @return
	 */
	public CoinDisplay getCoinDisplay();
	/**
	 * Change the coin quantity
	 * @param type
	 * @param idx
	 * @param qty
	 * @throws VMCSException
	 */
	public void changeStoreQty(char type, int idx, int qty) throws VMCSException;
	/**
	 * Set the price of the maintenance panel
	 * @param pr
	 */
	public void setPrice(String pr);
	/**
	 * Get the current index
	 * @return
	 */
	public int getCurIdx();
	/**
	 * Display the coins
	 * @param cc
	 */
	public void displayCoins(int cc);
	/**
	 * Display the total cash
	 * @param totalCash
	 */
	public void displayTotalCash(int totalCash);
	/**
	 * Update current quantity display
	 * @param idx
	 * @param qty
	 * @throws VMCSException
	 */
	public void updateCurrentQtyDisplay(int idx, int qty) throws VMCSException;
	/**
	 * Display price 
	 * @param price
	 */
	public void displayPrice(int price);
}
